Redundant Array of Independent Disks (RAID) combines multiple inexpensive disk drives into an array of disk drives to obtain performance, capacity and reliability exceeding that of a single large drive, while appearing to a host computer like a single logical drive. The mean time between failures in an array is equal to the failure rate of an individual drive divided by the number of drives in the array. Therefore, the failure rate of a non-redundant array is too high for mission-critical systems. Six RAID array levels, RAID 1 through RAID 6, are currently in use, each providing disk-fault tolerance and having different compromises in features and performance, with a sixth non-redundant array architecture being referred to as a RAID 0 array.
Fundamental to RAID technology is striping which partitions the storage space of each drive into stripes interleaved in a rotating sequence such that the combined space is composed alternately of stripes from each drive, wherein multiple drives are combined into a single logical storage unit. Stripes may be as small as one sector (512 bytes) or as large as several megabytes, stripe size being determined by a specific type of operating environment. Although concurrent disk input/output operations across multiple drives are supported by most operating systems, in order to maximize throughput for a disk subsystem, if the input/output load is balanced across all drives, each drive may be maintained as active as possible, which requires striping. By striping the drives in an array with stripes sufficiently large such that each record falls within one stripe, most records can be evenly distributed across all drives which keeps the drives busy during heavy load situations by permitting all drives to work concurrently on different input/output operations, thereby maximizing the number of simultaneous input/output operations that can be performed by the array.
With the exceptions of RAID levels 0 and 1, the other RAID levels use parity logic to provide data protection in the event of disk failures. Calculation of parity for XOR logic use during data write operations and for data reconstruction during recovery operations, takes more time and resources, thereby degrading system performance. There is also the possibility of additional disk failures during parity reconstruction (especially when there are terabytes of data involved) which may result in loss of data. RAID 0 provides performance but not redundancy, while RAID 1 provides performance and redundancy, but allocates 50% of the disk capacity and cannot support random multi-disk failures. RAID 3 and RAID 5 have poorer performance when compared to RAID 0 and 1, and do not handle multi-disk failures well; however more of the disk capacity is available. RAID 6 provides for multi-disk random failures of up to two physical disks, but the performance is greatly degraded due to the requirement of double parity generation. It should be mentioned that there is a significant probability of greater than two disk failures in situations where greater than terabyte volumes of information are reconstructed; that is, where data growth has reached the level of 1 TB on a single HDD, thereby generating greater likelihood of high disk failure rates during data reconstructions.